サンプルプログラム > サンプルコード(Visual C++ 6.0)
サンプルプログラム
サンプルコード(Visual C++ 6.0)
ここで示されるサンプルはMicrosoft Visual C++ 6.0を前提にしています。I/OライブラリにはVISA ライブラリ(VISA C API)を使用するものとします。
VISAライブラリは当社ウェブサイトから「KI-VISA Library(3.0.x以降)」をダウンロードするか、National Instruments社のNI-VISA(VER.3.0以降、 Windows 2000およびWindows XPでは、VER.3.2以降)またはAgilent Technologies社のAgilent VISA(Agilent I/O Library VER M01.00以降)を使用することができます。
それよりも古いバージョンのVISAではUSB機能を利用できないので注意してください。またUSB機能はWindows95およびNT3.5x/4.0では利用できません。
VISAセッションの取得と通信設定
下記のコードは、後述する全てのサンプルプログラムに共通の部分で、本製品との通信をおこなう前に実行する必要があります。
また変数pVisaAddressに代入するVISAリソース文字列は、GPIB/RS232C/USBによって書式が異なります。
GPIBの場合はデバイスアドレスが5を前提にしています。
RS232Cの場合には通信パラメータを19 200bps, Data 8bits, Stop 1bit, Parity NONE, XFlowを前提にしています。本製品のインターフェース設定をこれらの値と合致するようにしてください。
また、USBの場合は本製品のインターフェース設定で詳細設定すべき項目はありませんが、VISAリソース文字列にUSB VID(ベンダーID)、PID(プロダクトID)、シリアル番号、を明示的に指定する必要があります。VIDとPIDの値は、コンフィグ設定表示でも確認することができます。シリアル番号は、本製品後面パネルで確認することができます。
下記サンプルで使用するシリアル番号は一例です。
ViSession viRM; 'Resource Manager handle
ViSession vi; 'VISA IO Session handle
ViStatus vs; 'Error Status
LPCSTR pVisaAddress = "GPIB0::5::INSTR";
'LPCSTR pVisaAddress = "ASRL1::INSTR";
'LPCSTR pVisaAddress = "USB0::0x0B3E::0x1009::AB123456::INSTR";
vs = viOpenDefaultRM( &viRM);
vs = viOpen( viRM, (ViRsrc)pVisaAddress, VI_NO_LOCK, 0, &vi);
short iIntfType;
vs = viGetAttribute( vi, VI_ATTR_INTF_TYPE, &iIntfType);
switch( iIntfType) {
case 4: 'RS232
vs = viSetAttribute( vi, VI_ATTR_ASRL_BAUD, 19200);
vs = viSetAttribute( vi, VI_ATTR_ASRL_DATA_BITS, 8);
vs = viSetAttribute( vi, VI_ATTR_ASRL_PARITY, VI_ASRL_PAR_NONE);
vs = viSetAttribute( vi, VI_ATTR_ASRL_STOP_BITS, VI_ASRL_STOP_ONE);
vs = viSetAttribute( vi, VI_ATTR_ASRL_FLOW_CNTRL, VI_ASRL_FLOW_XON_XOFF);
vs = viSetAttribute( vi, VI_ATTR_ASRL_END_OUT, VI_ASRL_END_TERMCHAR);
vs = viSetAttribute( vi, VI_ATTR_ASRL_END_IN, VI_ASRL_END_TERMCHAR);
vs = viSetAttribute( vi, VI_ATTR_IO_PROT, VI_PROT_4882_STRS);
vs = viPrintf( vi, ":SYST:REM\n");
break;
case 7: 'USB
vs = viPrintf( vi, ":SYST:REM\n");
break;
}
vs = viSetAttribute( vi, VI_ATTR_TMO_VALUE, 3000);
vs = viSetAttribute( vi, VI_ATTR_WR_BUF_OPER_MODE, VI_FLUSH_ON_ACCESS);
vs = viSetAttribute( vi, VI_ATTR_RD_BUF_OPER_MODE, VI_FLUSH_ON_ACCESS);
ここで本製品との通信をします。実行したいプログラムをここに記述してください。 |
vs = viClose( vi);
vs = viClose( viRM);